// 封装数据库的操作
// 1.导入mysql包
const mysql = require('mysql');

// 创建数据库连接
const con = mysql.createConnection({
	host: '127.0.0.1',
	port: 3306,
	user: 'root',
	password: '123456',
	database: 'guanggu_smart_traffic',
	timezone: 'SYSTEM',
});
// 连接数据库
con.connect();

// 编写数据库操作
/**
 * 获取所有数据
 * @param {string} sql : 执行的sql语句
 * @return {promise}
 */
function getAll(sql) {
	return new Promise((res, rej) => {
		con.query(sql, (err, data) => {
			if (err) rej(err);
			res(data);
		});
	});
}

/**
 * 获取一个数据
 * @param {string} sql : 执行的sql语句
 * @return {promise}
 */
function getOne(sql) {
	return new Promise((res, rej) => {
		con.query(sql, (err, data) => {
			if (err) rej(err);
			data && data.length != 0 ? res(data[0]) : res(null);
		});
	});
}

/**
 * 执行sql语句
 * @param {string} sql : 执行的sql语句
 * @return {promise}
 */
function exec(sql) {
	return new Promise((res, rej) => {
		con.query(sql, (err, data) => {
			if (err) rej(err);
			res(data);
		});
	});
}

// 暴露三个方法
module.exports = {
	getAll,
	getOne,
	exec,
};
